Skip to main content

New Gherkin Step Definitions per Release

Discover the latest features and enhancements in pytest-bdd-ewx for an improved testing experience.

New steps in pytest-bdd-ewx in Release 25.02

Statement File LocationTypeStep DefinitionWhat Is It Used For?
channel_classifier/steps.pyThenI view the list of channel classifiers, I expect the channel "{channel_name}" to have the attribute "{attr_name}" with the value "{attr_value}"Checks that the channel classifier has the expected attribute when Browse the list of channels.
channel_classifier/steps.pyThenI view the list of channel classifiers, I expect the channel "{channel_name}" to have the datapoint attribute "{dpa_name}" of type "{dpa_type}"Checks that the channel classifier has the expected DPA when Browse the list of channels.
channel_classifier/steps.pyThenI view the list of channel classifiers, I expect the channel "{channel_name}" the datapoint attribute "{dpa_name}" to include enum values "{enum_values}"Checks that the channel classifier has the expected list of enums in the DPA.
datasource/steps.pyGivenI expect no channels for the datasource with id "{datasource_id}"Checks that a datasource has no channels.
datasource/steps.pyThenI expect no channels for the datasource with id "{datasource_id}"Checks that a datasource has no channels.
datasource/steps.pyThenI expect response containing "{ds_ids}" when I search for datasources with query "{search_filter}" and filter by the datasource classifier "{ds_classifier_name}"Queries datasources and filters by the datasource classifier. Verifies the required IDs are returned.
datasource/steps.pyThenI expect response containing "{ds_ids}" when I search for datasources with query "{search_filter}"Queries datasources, verifies the required IDs are returned.
datasource/steps.pyThenI expect response containing "{ds_ids}" when I search for datasources with no query and filter by the datasource classifier "{ds_classifier_name}"Search for datasources, filter by the datasource classifier. Verifies the required IDs are returned.
datasource/steps.pyThenI expect response containing "{ds_ids}" when I search for datasources with no filtersSearch for datasources without filters, verifies the required IDs are returned.
datasource/steps.pyThenI do not expect response to contain "{unexpected_ds_ids}" when I search for datasources with query "{search_filter}" and filter by the datasource classifier "{ds_classifier_name}"Verifies that datasources from the list are not returned by search with query and datasource classifier.
datasource/steps.pyThenI do not expect response to contain "{unexpected_ds_ids}" when I search for datasources with query "{search_filter}"Verifies that datasources from the list are not returned by search with query.
datasource/steps.pyThenI do not expect response to contain "{unexpected_ds_ids}" when I search for datasources with no query and filter by the datasource classifier "{ds_classifier_name}"Verifies that datasources from the list are not returned by search by datasource classifier filter.
datasource/steps.pyThenI expect response to contain only datasources with id "{expected_ds_ids}" when I search for datasources with query "{query}"Verifies that only expected datasources are returned by search with query.
datasource/steps.pyThenI expect response to contain only datasources with id "{expected_ds_ids}" when I search for datasources with query "{query}" and filter by the datasource classifier "{ds_classifier_name}"Verifies that only expected datasources are returned by search with query and filter by datasource classifier.
tag/steps.pyWhenI create a tag with the name "{tag_name}" with a property "{property_name}" and a value "{property_value}" for datasource "{datasource_id}"Creates a tag on the specified datasource. Valid from and version are set to 2000-01-01T00:00:00Z.
tag/steps.pyWhenI create a tag with the name "{tag_name}" with a property "{property_name}" and a value "{property_value}" for datasource "{datasource_id}" and version "{version}"Creates a tag on the specified datasource with specific version. Valid from is set to 2000-01-01T00:00:00Z.
tag/steps.pyWhenI create a tag with the name "{tag_name}" with a property "{property_name}", valid from "{valid_from}" and a value "{property_value}" for datasource "{datasource_id}" and version "{version}"Creates a tag on the specified datasource with specific version and valid from values.
tag/steps.pyWhenI expect no tags for datasource "{datasource_id}"Verifies no tags for the given datasource id
time_series/steps.pyThenI expect in datasource with id "{datasource_id}" channel "{channel_classifier}" to have "{amount:d}" values from "{start_date}" for "{years}" yearsValidates a timeseries data point is present in a channel classifier.
time_series/steps.pyThenI expect in channel "{channel_classifier}" an annotation on index "{timestamp}" for property "{annotation_key}" with value "{annotation_value}" for datasource with ID "{datasource_id}"Validates data point attribute values in a channel classifier.
time_series/steps.pyThenI expect in datasource with id "{datasource_id}" in channel "{channel_classifier}" data point "{timestamp}", "{value}"Validates a timeseries data point is present in a channel classifier.
time_series/steps.pyThenI expect in datasource with id "{datasource_id}" for the last flow on the destination channel "{destination_classifier}" in channel "{channel_classifier}" data point "{timestamp}", "{value}"Validates a timeseries data point is present in a channel classifier for the last flow run.
time_series/steps.pyThenI expect no annotation for property "{annotation_key}" with value "{annotation_value}" in channel "{channel_classifier}" for the last flow on the destination channel "{destination_classifier}" on index "{timestamp}" for datasource with ID "{datasource_id}"Validates data point attribute values in a channel classifier.
time_series/steps.pyThenI expect on datasource with id "{datasource_id}" channel "{channel_classifier}" to have exactly "{amount:d}" values between "{start_date}" and "{end_date}"Validates if exact amount of timeseries data point is present in a channel classifier.
time_series/steps.pyThenI expect on datasource with id "{datasource_id}" for the last flow on the destination channel "{destination_classifier}" in channel "{channel_classifier}" to have exactly "{amount:d}" values between "{start_date}" and "{end_date}"Validates if exact amount of timeseries data point is present in a channel classifier for the last flow run.
time_series/steps.pyThenI expect the datapoint attribute-value pairs "{dpa_name}" and "{dpa_value}" in datasource with id "{datasource_id}" in channel "{channel_classifier}" on timestamp "{timestamp}"Validates data point attribute values in a channel classifier.
time_series/steps.pyThenI expect the following datapoint attribute-value pairs in datasource with id "{datasource_id}" in channel "{channel_classifier}" on timestamp "{timestamp}":\n{dpa_value_table}Validates data point attribute values in a channel classifier.
time_series/steps.pyThenI verify the timeseries datapoint version of channel "{channel_classifier}" in ds id "{datasource_id}" with timestamp "{timestamp}" got updated with new datapoint version value after ingestionVerify DP version value got updated after ingestion.
time_series/steps.pyThenI expect on datasource with id "{datasource_id}" channel "{channel_classifier}" to have exactly "{amount:d} datapoint attribute values with the name "{dpa_name}" between "{start_date}" and "{end_date}"Validates if exact amount of specified datapoint attribute is present in a channel classifier.
time_series/steps.pyThenI expect on datasource with id "{datasource_id}" channel "{channel_classifier}" to have exactly "{amount:d}" annotations with the name "{annotation_name}" and the property "{annotation_prop_name}" between "{start_date}" and "{end_date}"Validates if exact amount of annotations is present in a channel classifier.
time_series/steps.pyThenI expect channels with the names "{channel_list}" to have timeseries data between "{start_date}" and "{end_date}" on the datasource with id "{datasource_id}" when using "{view}" view for version depth "{version_depth}"Verify that each channel from a given list contains timeseries data within a specified date range for the given datasource id with the requested view and specific version depth.
time_series/steps.pyThenI expect channels with the names "{channel_list}" to have timeseries data between "{start_date}" and "{end_date}" on the datasource with id "{datasource_id}"Verify that each channel from a given list contains timeseries data within a specified date range for the given datasource id.
time_series/steps.pyThenI expect channels with the names "{channel_list}" to have timeseries data between "{start_date}" and "{end_date}" for channel family "{channel_family}" on the datasource with id "{datasource_id}" when using "{view}" view for version depth "{version_depth}"Verify that each channel from a given list contains timeseries data within a specified date range and channel family filter for the given datasource id with the requested view and specific version depth.
time_series/steps.pyThenI expect channels with the names "{channel_list}" to have timeseries data between "{start_date}" and "{end_date}" for channel family "{channel_family}" on the datasource with id "{datasource_id}"Verify that each channel from a given list contains timeseries data within a specified date range and channel family filter for the given datasource id.
time_series/steps.pyThenI expect on datasource with id "{datasource_id}" channel "{channel_classifier}" to have exactly "{amount:d}" annotations with the name "{annotation_name}" and the property "{annotation_prop_name}" between "{start_date}" and "{end_date}" when using "{view}" view for version depth "{version_depth}"Validates if exact amount of annotations is present in a channel classifier with the requested view and specific version depth.
time_series/steps.pyThenI expect on datasource with id "{datasource_id}" channel "{channel_classifier}" to have exactly "{amount:d}" annotations with the name "{annotation_name}" and the property "{annotation_prop_name}" between "{start_date}" and "{end_date}"Validates if exact amount of annotations is present in a channel classifier.
time_series/steps.pyThenI expect on datasource with id "{datasource_id}" channel "{channel_classifier}" to have exactly "{amount:d}" datapoint attribute values with the name "{dpa_name}" between "{start_date}" and "{end_date}" when using "{view}" view for version depth "{version_depth}"Validates if exact amount of specified datapoint attribute is present in a channel classifier with the requested view and specific version depth.
time_series/steps.pyThenI expect on datasource with id "{datasource_id}" channel "{channel_classifier}" to have exactly "{amount:d}" datapoint attribute values with the name "{dpa_name}" between "{start_date}" and "{end_date}"Validates if exact amount of specified datapoint attribute is present in a channel classifier.
time_series/steps.pyThenI expect no timeseries data for the datasource with id "{datasource_id}"Checks the datasource has no timeseries data.
time_series/steps.pyThenI expect on datasource with id "{datasource_id}" channel "{channel_classifier}" to have exactly "{amount:d}" flags with the name "{flag_name}" between "{start_date}" and "{end_date}" when using "{view}" view for version depth "{version_depth:d}"Validates if exact amount of specified flag is present in a channel classifier with the requested view and specific version depth.
tag/steps.pyThenI expect the tag with name "{tag_name}" to have property "{property_name}" with value "{property_value}" for datasource "{datasource_id}" and for a given versionChecks that a tag has a specific value for a given version.
tag/steps.pyThenI expect the tag with name "{tag_name}" for datasource with id "{datasource_id}" to have value "{tag_value}" in the tag attributeVerifies the tag has the specified value.
time_series/steps.pyGivenI expect the datapoint with timestamp "{timestamp}" has a version_ts between "{start_date}" and "{end_date}" for channel "{channel_classifier}" in datasource with id "{datasource_id}"Validates that the datapoint has the correct version timestamp.

New steps in pytest-bdd-ewx in Release 25.03

Statement File LocationTypeStep DefinitionWhat Is It Used For?
time_series/steps.pyThenI expect a datapoint on timestamp "{timestamp}" to have a new version for continuous flow channel "{channel_name}" on datasource with id "{datasource_id}" after datapoint editingChecks that the datapoint version is updated after editing for continuous flow channel.
time_series/steps.pyThenI expect a datapoint on timestamp "{timestamp}" to have the same version for scenario flow channel "{channel_name}" on datasource with id "{datasource_id}" after datapoint editingChecks that the datapoint version is not updated after editing for a scenario flow channel.
time_series/steps.pyThenI expect the annotation "{annotation_name}" previous value to be equal to "{value}" for the timestamp "{timestamp}" on the channel "{annotation_channel}" in the edits history for the datasource with id "{datasource_id}"(?: with edit reason "{edit_reason}" and user email "{user_email}")?Checks that the previous value of an annotation is as expected in the edits history. Optionally, edit reason and user email can be verified in the edits history.
time_series/steps.pyThenI expect the datapoint attribute "{dpa_name}" previous value to be equal to "{value}" for the timestamp "{timestamp}" on the channel "{channel_name}" in the edits history for the datasource with id "{datasource_id}"(?: with edit reason "{edit_reason}" and user email "{user_email}")?Checks that the previous value of a datapoint attribute is as expected in the edits history. Optionally, edit reason and user email can be verified in the edits history.
time_series/steps.pyThenI expect the datapoint previous value to be equal to "{value}" for the timestamp "{timestamp}" on the channel "{channel_name}" in the edits history for the datasource with id "{datasource_id}"(?: with edit reason "{edit_reason}" and user email "{user_email}")?Checks that the previous value of a datapoint is as expected in the edits history. Optionally, edit reason and user email can be verified in the edits history.
datapoint/steps.pyWhenI edit on datasource "{datasource_id}" for channel "{channel_classifier}" at "{timestamp}" the annotation with the name "{annotation_key}" to the value "{value}" with edit reason "{edit_reason}"Edits a single annotation value for a specified timestamp.
datapoint/steps.pyWhenI edit on datasource "{datasource_id}" for channel "{channel_classifier}" at "{timestamp}" the datapoint attribute with the name "{dpa_name}" to the value "{value}" with edit reason "{edit_reason}"Edits a single datapoint value for a specified timestamp.
datapoint/steps.pyWhenI edit on datasource "{datasource_id}" for channel "{channel_classifier}" at "{timestamp}" the value to "{value}" with edit reason "{edit_reason}"Edits a single datapoint value for a specified timestamp.
datapoint/steps.pyWhenI edit on datasource "{datasource_id}" the following annotations with edit reason "{edit_reason}":\n{datatable}Edits multiple annotations for a specified datasource using a datatable.
datapoint/steps.pyWhenI edit on datasource "{datasource_id}" the following datapoint attributes with edit reason "{edit_reason}":\n{datatable}Edits multiple datapoint attributes for a specified datasource using a datatable.
datapoint/steps.pyWhenI edit on datasource "{datasource_id}" the following datapoint values with edit reason "{edit_reason}":\n{datatable}Edits multiple datapoint values for a specified datasource using a datatable.

New steps in pytest-bdd-ewx in Release 25.04

Clients

Statement File LocationTypeStep DefinitionWhat Is It Used For?
clients.pyGivenI use the namespace with the name "{nsp_name}"This step is used to get the namespace id by name and set it for the test run.

Datasource

Statement File LocationTypeStep DefinitionWhat Is It Used For?
datasource/steps.pyGivenI expect a new flow with config name "{flow_name}" and status "{flow_status}" with channel classifier "{channel_classifier}" on datasource "{datasource_id}" within "{timeout:d}" minutes with a poll frequency of "{freq:d}" secondsChecks if amount of new successful or failed flows with channel classifier is as expected.
datasource/steps.pyThenI expect a new flow with config name "{flow_name}" and status "{flow_status}" with channel classifier "{channel_classifier}" on datasource "{datasource_id}" within "{timeout:d}" minutes with a poll frequency of "{freq:d}" secondsChecks if amount of new successful or failed flows with channel classifier is as expected.

Query

Statement File LocationTypeStep DefinitionWhat Is It Used For?
query/steps.pyThenI use advanced search to check the annotation "{annotation_name}" with the key "{annotation_key}" on the sequence id "{sequence_id}" has a value "{value}" for the timestamp "{timestamp}" for the channel "{channel_name}" on a datasource with id "{datasource_id}" after (?:flow execution|ingestion)Uses advanced search to check the annotation value of a datapoint after ingestion.
query/steps.pyThenI use advanced search to check the datapoint attribute "{dpa_name}" value is "{value}" for the timestamp "{timestamp}" for the channel "{channel_name}" on a datasource with id "{datasource_id}" after (?:flow execution|ingestion)Uses advanced search to check the DPA value of a datapoint.
query/steps.pyThenI use advanced search to check the datapoint value is "{value}" for the timestamp "{timestamp}" for the channel "{channel_name}" on a datasource with id "{datasource_id}" after (?:flow execution|ingestion)Uses advanced search to check the datapoint value of a datapoint after ingestion.

Tasks

Statement File LocationTypeStep DefinitionWhat Is It Used For?
tasks/steps.pyThenI expect "{amount:d}" task(s) with the title "{title}" within "{time_limit_in_minutes:d}" minutes with a poll frequency of "{polling_frequency_in_seconds:d}" secondsPoll to check if the expected amount of tasks with given title exist.
tasks/steps.pyWhenI expect "{amount:d}" task(s) with the title "{title}" within "{time_limit_in_minutes:d}" minutes with a poll frequency of "{polling_frequency_in_seconds:d}" secondsPoll to check if the expected amount of tasks with given title exist.